package cn.sxw.ld.module.category.controller;

import cn.sxw.ld.common.dto.R;
import cn.sxw.ld.module.category.pojo.Category;
import cn.sxw.ld.module.category.service.CategoryService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * ClassName:CategoryController
 * Package:cn.sjxy.graduation.controller
 * Description:
 *
 * @Date:2022/5/27 20:00
 * @Author:SXW
 */
@Slf4j
@RestController
@RequestMapping("/category")
public class CategoryController {

    @Autowired
    private CategoryService categoryService;

    /**
     * 新增菜品套餐
     *
     * @param category
     * @return
     */
    @PostMapping
    public R<String> save(@RequestBody Category category) {
        categoryService.save(category);
        return R.success("新增分类成功！");
    }

    /**
     * 分页查询
     *
     * @param page
     * @param pageSize
     * @return
     */
    @GetMapping("/page")
    public R<Page> page(int page, int pageSize) {
        Page pageInfo = categoryService.getPage(page, pageSize);
        return R.success(pageInfo);
    }

    /**
     * 根据 id 删除
     * 1. 先查询该分类是否关联了其他菜品，或套餐
     * 2. 若有则不允许删除
     *
     * @param ids
     * @return
     */
    @DeleteMapping
    public R<String> deleteCategory(Long ids) { // 参数必须与请求地址中相同
        categoryService.remove(ids);
        return R.success("删除成功！");
    }

    /**
     * 根据 id 修改分类信息
     *
     * @param category
     * @return
     */
    @PutMapping
    public R<String> updateCategory(@RequestBody Category category) {
        categoryService.updateById(category);
        return R.success("修改成功");
    }

    /**
     * 根据条件来查询，条件即为 category 的 type
     *
     * @param category
     * @return
     */
    @GetMapping("/list")
    public R<List<Category>> list(Category category) {
        List<Category> categorys = categoryService.getCategorys(category);
        return R.success(categorys);
    }

}




























